package cn.gok.day6;

import java.util.*;

/**
 * @ClassName HomeWork
 * @Description TODO
 * @Author oscar
 * @Date 18:52 2022/7/11
 * @Version 1.0
 * 1 创建Book类： int bid（编号）,String bname,float price
 *
 *
 * 2 创建 TreeMap<Book,String> map;加入5本书，
 *    map.put(new Book(1,"西游记",100),"老白");
 * 要求按书的价格从高到低排序输出。
 * 使用两个遍历方法：  keySet遍历，entrySet遍历
 *
 *
 *
 * 3  创建   ArrayList<Book> list;添加5本书，
 * 使用 stream运算，将价格低于150元的书，按编号从低到高输出。
 * 提示    filter(?).sort(new BookCompartor()).forEach(...)
 **/
public class HomeWork {
    public static void main(String[] args) {
//        1. 要求按书的价格从高到低排序输出。使用两个遍历方法：  keySet遍历，entrySet遍历
        sortBook();
//        2. 使用 stream运算，将价格低于150元的书，按编号从低到高输出。
//        listSteam();
    }

    private static void listSteam() {
        List<Book> list=new ArrayList<>();
        list.add(new Book(19403531,"白夜行",155.9F));
        list.add(new Book(19403503,"javaEE",95.9F));
        list.add(new Book(19403548,"西游记",65.9F));
        list.add(new Book(19403513,"三国演义",78.9F));
        list.add(new Book(19403532,"水浒传",99.9F));
        System.out.println("格低于150元的书，按编号从低到高输出：");
        list.stream().filter(book -> book.getPrice()<150).sorted((b1,b2)->b1.getBid()-b2.getBid()).forEach(System.out::println);

    }

    private static void sortBook() {
        Map<Book,String> map=new TreeMap<Book,String>(new Comparator<Book>() {
            @Override
            public int compare(Book o1, Book o2) {
//                按书的价格从高到低排序
                if(o1.getPrice() == o2.getPrice()){
//                    对结果等于0的情况做处理
                    return 0;
                }
                return (int) -(o1.getPrice()- o2.getPrice());
            }
        });

        map.put(new Book(19403531, "白夜行", 45.9F),"oscar");
        map.put(new Book(19403532,"龙族",69.9F),"罗开为");
        map.put(new Book(19403533,"龙族五",69.9F),"审计为");
        map.put(new Book(19403534,"JavaEE",90.9F),"歹意");
        map.put(new Book(19403535,"中华字典",15.9F),"吾系甘");

//        使用两个遍历方法：  keySet遍历，entrySet遍历
        System.out.println("keySet遍历方式：");
//        map.keySet().stream().forEach(s-> System.out.println(s+"==="+map.get(s)));
        Iterator<Book> it=map.keySet().iterator();
        while (it.hasNext()){
            Book key=it.next();
            String value=map.get(key);
            System.out.println(key+"==="+value);
        }
        System.out.println("entrySet遍历方式：");
        map.entrySet().stream().forEach(e-> System.out.println(e.getKey()+"==="+e.getValue()));


    }

}
